/* 
 * File:   quadr.h
 * Author: boyan
 *
 * Created on December 12, 2007, 1:13 PM
 */

#ifndef _QUADR_H
#define	_QUADR_H

#include "glodef.h"

#ifdef	__cplusplus
extern "C"
{
#endif

    typedef void __func_t(const double *loc, double **Val, void *data);

    void integrate_ref_el(int Q, int N, __func_t F, double *V, void *data);
    /*
     * Q is the formula to be used, see below.
     * F is an N-valued function of 3 variables.
     * F must return pointer in Val to an array of N values.
     * V returns an array of N values of the integrals of F over the ref-element
     */

    extern const int QDEG2;
    extern const int QDEG4;
    extern const int QDEG5;

    /* Possible values of Q:
     *  QDEG2 :     degree 2, nodes 5, uses centroids of faces and tetrahedron
     *  QDEG4 :     degree 4, nodes 11, uses centroid of tetrahedron
     *  QDEG5 :     degree 5, nodes 15
     * more to come as needed
     */



#ifdef	__cplusplus
}
#endif

#endif	/* _QUADR_H */

